﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VentaElectrodomesticos.Contrato;
using System.Data.SqlClient;

namespace VentaElectrodomesticos.Datos
{
    class CategoriaDAO : BaseDAO<Categoria>
    {
        public List<MejorCategoriaDTO> getMejoresCategorias(long sucursal, decimal year)
        {
            List<SqlParameter> parametros = new List<SqlParameter>();
            SqlParameter suc = new SqlParameter("@sucursal", sucursal);
            SqlParameter anio = new SqlParameter("@anio", year);
            parametros.Add(suc);
            parametros.Add(anio);
            SqlDataReader reader = this.executeStoredProcedure(Config.tableSpace + "mejoresCategorias", parametros);
            
            List<MejorCategoriaDTO> listaCat = new List<MejorCategoriaDTO>();

            while (reader.Read())
            {
                MejorCategoriaDTO cat = new MejorCategoriaDTO();

                cat.NombreCategoria = reader["nombre"].ToString();
                cat.CantidadSubCategorias =reader["cantSubCat"].ToString();
                cat.MontoTotalCategoria = reader["totalMonto"].ToString();

                cat.IdProductoMaximoMonto = reader["prodMaxMontoId"].ToString();
                cat.NombreProductoMaximoMonto = reader["prodMaxMontoNombre"].ToString();
                cat.MontoProductoMaximoMonto = reader["prodMaxMontoCant"].ToString();

                cat.IdProductoMaximaCantidad = (reader["prodMaxCantId"].ToString());
                cat.NombreProductoMaximaCantidad = reader["prodMaxCantNombre"].ToString();

                cat.IdProductoMaximoPrecio = (reader["prodMaxPrecioId"].ToString());
                cat.NombreProductoMaximoPrecio = reader["prodMaxPrecioNombre"].ToString();
                cat.PrecioProductoMaximoPrecio = (reader["precioMaximo"].ToString());

                cat.NombreMejorVendedor = reader["vendMaxNombre"].ToString();
                cat.ApellidoMejorVendedor = reader["vendMaxApellido"].ToString();

                listaCat.Add(cat);
            }

            return listaCat;
        }
    }
}
